Programming Future Parallel Architectures with Haskell and Intel ArBB
نویسندگان
چکیده
New parallel architectures, such as Cell, Intel MIC, GPUs, and tiled architectures, enable high performance but are often hard to program. What is needed is a bridge between high-level programming models where programmers are most productive and modern parallel architectures. We propose that that bridge is Embedded Domain Specific Languages (EDSLs). One attractive target for EDSLs is Intel ArBB, a virtual machine for parallel, vectorized computations. We propose to wed ArBB with the functional programming language Haskell, using an EDSL that generates code for the ArBB VM. This Haskell integration provides added safety guarantees compared to other ArBB interfaces. Further, our prototype, Harbb, is one of the first EDSL implementations with optimized backends for multiple parallel architectures (CPU, NVIDIA GPU, and others), allowing portability of source code over devices and their accelerators.
منابع مشابه
Embedded Languages for Data-Parallel Programming
Computers today are becoming more and more parallel. General purpose processors (CPUs) have multiple processing cores and Single Instruction Multiple Data (SIMD) units for data-parallelism. Graphics processors (GPUs) bring massive parallelism at the cost of being harder to program than CPUs. This thesis applies embedded language methodology to data-parallel programming. Two embedded languages a...
متن کاملData-parallel programming with Intel Array Building Blocks (ArBB)
Intel Array Building Blocks is a high-level data-parallel programming environment designed to produce scalable and portable results on existing and upcoming multiand many-core platforms. We have chosen several mathematical kernels a dense matrix-matrix multiplication, a sparse matrix-vector multiplication, a 1-D complex FFT and a conjugate gradients solver as synthetic benchmarks and representa...
متن کاملIntel Concurrent Collections for Haskell
Intel Concurrent Collections (CnC) is a parallel programming model in which a network of steps (functions) communicate through message-passing as well as a limited form of shared memory. This paper describes a new implementation of CnC for Haskell. Compared to existing parallel programming models for Haskell, CnC occupies a useful point in the design space: pure and deterministic like Strategie...
متن کاملParaForming: Forming Parallel Haskell Programs Using Novel Refactoring Techniques
Enabling programmers to “think parallel” is critical if we are to be able to effectively exploit future multicore/manycore architectures. This paper introduces paraforming : a new approach to constructing parallel functional programs using formally-defined refactoring transformations. We introduce a number of new refactorings for Parallel Haskell that capture common parallel abstractions, such ...
متن کاملGo-faster Haskell Or: Data-intensive Programming in Parallel Haskell Draft
We have recently constructed an integrated programming environment to support programming in Glasgow Parallel Haskell GpH. This paper descibes the construction of several data-intensive parallel programs using the environment. It focuses on a road-traac accident application because it is a real problem with real data, and is the rst non-trivial GpH program to achieve wall-clock speedups | a fac...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011